// index.js
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0';
const app = getApp();
const wuhuUrl = app.globalData.wuhuUrl;

Page({
  data: {
    motto: '欢迎来到图文魔方',
    userInfo: {
      avatarUrl: defaultAvatarUrl,
      nickName: '',
      avatarBase64: '' // 用户头像的Base64编码字符串
    },
    hasUserInfo: false,
    canIUseGetUserProfile: wx.canIUse('getUserProfile'),
    canIUseNicknameComp: wx.canIUse('input.type.nickname'),
  },

  // 选择用户头像回调函数
  onChooseAvatar(e) {
    const {
      avatarUrl
    } = e.detail;
    // console.log(avatarUrl);
    const {
      nickName
    } = this.data.userInfo;
    this.setData({
      "userInfo.avatarUrl": avatarUrl,
      hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl,
    });
    // 将用户头像转换为 Base64 编码字符串
    this.avatarToBase64(avatarUrl);
  },

  // 输入用户名回调函数
  onInputChange(e) {
    const nickName = e.detail.value;
    // console.log(nickName);
    const {
      avatarUrl
    } = this.data.userInfo;
    this.setData({
      "userInfo.nickName": nickName,
      hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl,
    });
  },

  // 获取用户信息回调函数
  getUserProfile(e) {
    wx.getUserProfile({
      desc: '展示用户信息',
      success: (res) => {
        console.log("展示用户信息",res);
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        });
      }
    });
  },

  // 将用户头像转换为 Base64 编码字符串
  avatarToBase64(avatarUrl) {
    wx.request({
      url: avatarUrl,
      responseType: 'arraybuffer',
      success: (res) => {
        const base64 = wx.arrayBufferToBase64(res.data);
        // console.log('头像的Base64编码：', base64);
        this.setData({
          "userInfo.avatarBase64": base64
        });
      },
      fail: (error) => {
        console.error('获取头像失败！', error);
      }
    });
  },

  // 向后端发送数据函数
  gotoindex() {
    // 获取用户名、用户头像的 Base64 编码字符串和用户登录凭证 code
    const {
      nickName,
      avatarBase64
    } = this.data.userInfo;
    console.log("用户名", nickName)
    console.log("用户头像路径", avatarBase64)
    wx.login({
      success: (res) => {
        const code = res.code;
        console.log('用户登录凭证 code:', code);

        // 将用户名、用户头像的 Base64 编码字符串和 code 一起传给后端
        wx.request({
          url: wuhuUrl + '/ft/user/login-wechat',
          method: 'POST',
          data: {
            nickName: nickName,
            avatarData: avatarBase64,
            code: code
          },
          success: (res) => {
            console.log('后端返回数据：', res.data);
            wx.setStorageSync('userInfo', res.data.data);
            wx.switchTab({
              url: '/pages/index/index'
            });
            // 在这里处理后端返回的数据
          },
          fail: (error) => {
            console.error('请求失败！', error);
          }
        });
      },
      fail: (error) => {
        console.error('wx.login失败！', error);
      }
    });
  },

});